Port management for graphical modeling

ABSTRACT

A device may detect a user interaction, via a user interface, with a particular component of a model. The device may generate a set of components, associated with the particular component, based on detecting the user interaction with the particular component of the model. The device may cause a representation of the set of components to be provided, via the user interface, in association with the model. The representation may indicate that the set of components are associated with permitting interoperability.

RELATED APPLICATION(S)

This application claims priority under 35 U.S.C. § 119 to U.S.Provisional Patent Application No. 62/260,776, filed on Nov. 30, 2016,the content of which is incorporated by reference herein in itsentirety.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B are diagrams of an overview of an example implementationdescribed herein;

FIG. 2 is a diagram of an example environment in which systems and/ormethods, described herein, may be implemented;

FIG. 3 is a diagram of example components of one or more devices of FIG.2;

FIGS. 4A and 4B are diagrams of an example implementation of interfaceadaptation;

FIGS. 5A and 5B are diagrams of another example implementation ofinterface adaptation;

FIGS. 6A and 6B are diagrams of another example implementation ofinterface adaptation;

FIGS. 7A-7C are diagrams of another example implementation of interfaceadaptation;

FIGS. 8A-8D are diagrams of another example implementation of interfaceadaptation;

FIG. 9 is a flow chart of an example process for interface adaptation;and

FIGS. 10A-10D are diagrams of another example implementation ofinterface adaptation; and

FIG. 11 is a diagram of another example implementation of interfaceadaptation.

DETAILED DESCRIPTION

The following detailed description of example implementations refers tothe accompanying drawings. The same reference numbers in differentdrawings may identify the same or similar elements.

A graphical model may include a set of components. A component mayinclude a model element, a textual element, or the like. A model elementmay include a block diagram block, a port, a subsystem, a connection, afunction, or the like. Similarly, a textual element may include aportion of program code, a function, or the like. Information (e.g., asignal) may be transferred between portions of the graphical model. Forexample, a signal may be provided from an output port of a first blockto an input port of a second block. However, the signal output from theoutput port of the first block may be incompatible with a type of signalthat the input port of the second block is configured to receive. Forexample, the output port may be associated with providing a signal witha first set of signal attributes, such as a first dimension, a firstdata type, a first sample rate, or the like. Further to the example, theinput port may be associated with receiving a signal associated with asecond set of signal attributes, such as a second dimension, a seconddata type, a second sample rate, or the like. In this case, the firstset of signal attributes and the second set of signal attributes may bedifferent, preventing communication between the output port and theinput port.

Implementations, described herein, may provide an interface adapter topermit communication between incompatible portions of a graphical model,such as between multiple connecting graphical blocks, between agraphical block and an executable, or the like. For example, a serverdevice may generate a port expansion layer including a set of componentsassociated with adapting a port to receive a particular input or providea particular output. In this way, the server device may improvegraphical modeling by automatically ensuring compatibility betweencomponents of a graphical model, such as graphically connectedcomponents, hierarchically connected components, or the like.

FIGS. 1A and 1B are diagrams of an overview of an example implementation100 described herein. As shown in FIG. 1A, example implementation 100may include a technical computing environment (TCE). The TCE may beprovided via a user interface of a client device. The TCE may include ablock 101 connected to one or more source blocks that are associatedwith providing a set of signals 105. Block 101 may be associated with aset of input ports (e.g., “inports”) 107 for receiving signals. Block101 may be associated with a set of parameters 110 (e.g., parameters“P1, P2, . . . , P_(L)”) of a parent subsystem. Block 101 may beconnected to one or more destination blocks that are associated withreceiving a set of signals 115. Block 101 may be associated with a setof output ports (e.g., “outports”) 117 for providing the signals.

The client device may configure an interface adapter to permit block 101to receive signals 105 via inports 107. Assume that one or more signalattributes of signals 105 are incompatible with one or more signalattributes of signals that inports 107 are configured to receive. Forexample, a first source block may output 4 signals of signals 105 and asecond source block may output 2 signals of signals 105. In this case,inports 107 may be configured to receive 2 groups of signals via 2inports, rather than the 6 separate signals provided by the first sourceblock and the second source block. The client device may configure theinterface adapter to cause the 6 signals of signals 105 to bepartitioned for receipt by block 101. Partitioning the 6 signals intogroups may include generating a set of components associated withgrouping and/or altering the 6 signals. As an example, the client devicemay group the first 4 signals into a first vector to be received by afirst inport of inports 107. Further to the example, the client devicemay configure the interface adapter to cause the second 2 signals to begrouped into a second vector to be received by a second inport ofinports 107. In this way, the client device causes signals 105 to bereceivable by inports 107.

The client device may configure the interface adapter to groupparameters 110 of block 101 into a structure parameter associated with aparent system. In other words, block 101 is a subsystem of a parentsystem that includes a structure parameter corresponding to parameters110. A structure parameter may refer to a parameter that includesmultiple numeric variables as fields. For example, the client device maygroup “P₁, P₂, . . . , P_(L)” into a particular structure parameter“P_(S).” In this way, the client device adapts a presentation ofparameters of block 101 (e.g., a graphical presentation, a textualpresentation, etc.) to map to a parent system, thereby providingimproved clarity in understanding the graphical model.

The client device may configure the interface layer to permit block 101to provide signals 115 via outports 117. Assume that one or more signalattributes of signals 115 are not providable by outports 117 (e.g., atype of signal that outports 117 are configured to provide is not thetype of signal that the one or more destination blocks are configured toreceive). For example, a first destination block may be associated withreceiving a first vector including a first structure signal including 5signals of signals 115 and a second destination block may be associatedwith receiving a second vector including a second structure signalincluding 2 signals of signals 115. The client device may packagesignals 115 into the first structure signal and the second structuresignal. Packaging signals 115 may include generating a set of componentsassociated with packaging and/or grouping signals 115.

Assume that the client device represents the interface adapter,graphically, as a set of layers that alter a presentation of block 101.The interface adapter may generate a mediation layer associated with theTCE that performs one or more data conversions associated withpermitting interoperability between non-compatible portions of a model(e.g., non-compatible blocks or the like). However, the client devicemay selectively provide information representing the mediation layer.For example, the client device may alter an appearance of block 101and/or signals associated therewith to identify an effect of theinterface layer in causing interoperability. In this case, the clientdevice may represent signals 105 as being packaged or grouped.Additionally, or alternatively, the client device may alter anappearance of block 101 to provide information identifying componentsassociated with packaging or grouping, such as bus components, internalinputs, internal outputs, or the like.

As shown in FIG. 1B, the client device provides a graphicalrepresentation of block 101 after configuring the interface adapter. Asshown by reference number 125, signals 105 are partitioned into a firstgroup of signals received via inports 107 and a second group of signalsreceived via inports 107. As shown by reference number 135, parameters110 are represented as grouped into structure parameter 135 (e.g.,“[P_(S)]”). As shown by reference number 150, the client device providesa representation of the first structure signal and the second structuresignal. The client device provides a representation of signals 115 beingprovided by block 101 and outports 117 as the first structure signal andthe second structure signal.

In this way, the client device corrects an interoperability issueassociated with a component by configuring an interface adapter thatadapts an output interface of a first portion of the graphical model toan input interface of a second portion of the graphical model. In thisway, the client device permits multiple incompatible portions of agraphical model, a text-based model, or the like to be compatible.Moreover, the client device may provide a layered view of the interfaceadapter by providing different representations of the interface adapterwith different associated granularities.

FIG. 2 is a diagram of an example environment 200 in which systemsand/or methods, described herein, may be implemented. As shown in FIG.2, environment 200 may include a client device 210, which may include atechnical computing environment (TCE) 220. Furthermore, environment 200may include a server device 230, which may include TCE 220, and anetwork 240. Devices of environment 200 may interconnect via wiredconnections, wireless connections, or a combination of wired andwireless connections.

Client device 210 may include one or more devices capable of receiving,generating, storing, processing, and/or providing information associatedwith an interface adapter. For example, client device 210 may include acomputing device, such as a desktop computer, a laptop computer, atablet computer, a mobile phone (e.g., a smart phone, a radiotelephone,etc.), or a similar device. Client device 210 may obtain a model (e.g.,a graphical model), and may configure an interface adapter to permitportions of the model (e.g., blocks, textual elements, etc.) to exchangeinformation. In some implementations, client device 210 may receiveinformation from and/or transmit information to server device 230.

Client device 210 may host TCE 220. TCE 220 may include anyhardware-based component or a combination of hardware and software-basedcomponents that provides a computing environment that allows tasks to beperformed (e.g., by users) related to disciplines, such as, but notlimited to, mathematics, science, engineering, medicine, and business.TCE 220 may include a text-based environment (e.g., MATLAB® software byThe MathWorks, Inc.; Octave; Python; JavaScript; Comsol Script; MATRIXxfrom National Instruments; Mathematica from Wolfram Research, Inc.;Mathcad from Mathsoft Engineering & Education Inc.; Maple fromMaplesoft; Extend from Imagine That Inc.; Scilab from The FrenchInstitution for Research in Computer Science and Control (INRIA);Virtuoso from Cadence; Modelica or Dymola from Dassault Systemes; etc.),a graphically-based environment (e.g., Simulink® software, Stateflow®software, SimEvents® software, Simscape™ software etc., by TheMathWorks, Inc.; VisSim by Visual Solutions; LabView® by NationalInstruments; Agilent VEE by Agilent Technologies; Advanced Design System(ADS) by Agilent Technologies; Agilent Ptolemy by Agilent Technologies;etc.), or another type of environment, such as a hybrid environment thatmay include, for example, a text-based environment and agraphically-based environment. In some implementations, TCE 220 mayinclude, for example, a user interface and/or enable simulation andexecution of hardware and/or software systems. In some implementations,TCE 220 may include a high-level architecture (HLA) that facilitatesperforming a simulation, such as performing a distributed simulation.

TCE 220 may be integrated with or operate in conjunction with a modelingenvironment, which may provide graphical tools for constructing models(e.g., graphical models) of systems and/or processes. TCE 220 mayinclude additional tools, such as tools designed to convert a model intoan alternate representation, such as an alternate model format, code ora portion of code representing source computer code and/or compiledcomputer code, a hardware description (e.g., a specification of adigital circuit, a description of a circuit layout, etc.), or the like.TCE 220 may also include tools to convert a model into project files foruse in an integrated development environment (IDE) such as Eclipse byEclipse Foundation, IntelliJ IDEA by JetBrains or Visual Studio byMicrosoft. A model (e.g., a graphical model) may include one or moremodel elements that simulate characteristics of a system and/or aprocess. Each model element may be associated with a graphicalrepresentation thereof that may include a set of objects, such as one ormore blocks (e.g., block diagram blocks), ports, connector lines, or thelike.

Server device 230 may include one or more devices capable of receiving,generating, storing, processing, and/or providing information associatedwith an interface adapter. For example, server device 230 may include acomputing device, such as a server, a desktop computer, a laptopcomputer, a tablet computer, or a similar device. In someimplementations, server device 230 may host TCE 220. In someimplementations, client device 210 may be used to access one or moreTCEs 220 running on one or more server devices 230. For example,multiple server devices 230 may be used to execute program code (e.g.,serially or in parallel), and may provide respective results ofexecuting the program code to client device 210.

In some implementations, client device 210 and server device 230 may beowned by different entities. For example, an end user may own clientdevice 210, and a third party may own server device 230. In someimplementations, server device 230 may include a device operating in acloud computing environment. In this way, front-end applications (e.g.,a user interface) may be separated from back-end applications (e.g.,program code execution). Additionally, or alternatively, server device230 may perform one, more, or all operations described elsewhere hereinas being performed by client device 210.

Network 240 may include one or more wired and/or wireless networks. Forexample, network 240 may include a cellular network, a public landmobile network (PLMN), a local area network (LAN), a wide area network(WAN), a metropolitan area network (MAN), a telephone network (e.g., thePublic Switched Telephone Network (PSTN)), an ad hoc network, anintranet, the Internet, a fiber optic-based network, a private network,a cloud computing network, and/or a combination of these or other typesof networks.

The number and arrangement of devices and networks shown in FIG. 2 areprovided as an example. In practice, there may be additional devicesand/or networks, fewer devices and/or networks, different devices and/ornetworks, or differently arranged devices and/or networks than thoseshown in FIG. 2. Furthermore, two or more devices shown in FIG. 2 may beimplemented within a single device, or a single device shown in FIG. 2may be implemented as multiple, distributed devices. Additionally, oralternatively, a set of devices (e.g., one or more devices) ofenvironment 200 may perform one or more functions described as beingperformed by another set of devices of environment 200.

FIG. 3 is a diagram of example components of a device 300. Device 300may correspond to client device 210 and/or server device 230. In someimplementations, client device 210 and/or server device 230 may includeone or more devices 300 and/or one or more components of device 300. Asshown in FIG. 3, device 300 may include a bus 310, a processor 320, amemory 330, a storage component 340, an input component 350, an outputcomponent 360, and a communication interface 370.

Bus 310 may include a component that permits communication among thecomponents of device 300. Processor 320 is implemented in hardware,firmware, or a combination of hardware and software. Processor 320 mayinclude a processor (e.g., a central processing unit (CPU), a graphicsprocessing unit (GPU), an accelerated processing unit (APU), etc.), amicroprocessor, and/or any processing component (e.g., afield-programmable gate array (FPGA), an application-specific integratedcircuit (ASIC), etc.) that interprets and/or executes instructions. Insome implementations, processor 320 may include one or more processorsthat can be programmed to perform a function. Memory 330 may include arandom access memory (RAM), a read only memory (ROM), and/or anothertype of dynamic or static storage device (e.g., a flash memory, amagnetic memory, an optical memory, etc.) that stores information and/orinstructions for use by processor 320.

Storage component 340 may store information and/or software related tothe operation and use of device 300. For example, storage component 340may include a hard disk (e.g., a magnetic disk, an optical disk, amagneto-optic disk, a solid state disk, etc.), a compact disc (CD), adigital versatile disc (DVD), a floppy disk, a cartridge, a magnetictape, and/or another type of computer-readable medium, along with acorresponding drive. In some implementations, storage component 340 maystore TCE 220.

Input component 350 may include a component that permits device 300 toreceive information, such as via user input (e.g., a touch screendisplay, a keyboard, a keypad, a mouse, a button, a switch, amicrophone, etc.). Additionally, or alternatively, input component 350may include a sensor for sensing information (e.g., a global positioningsystem (GPS) component, an accelerometer, a gyroscope, an actuator,etc.). Output component 360 may include a component that provides outputinformation from device 300 (e.g., a display, a speaker, one or morelight-emitting diodes (LEDs), etc.).

Communication interface 370 may include a transceiver-like component(e.g., a transceiver, a separate receiver and transmitter, etc.) thatenables device 300 to communicate with other devices, such as via awired connection, a wireless connection, or a combination of wired andwireless connections. Communication interface 370 may permit device 300to receive information from another device and/or provide information toanother device. For example, communication interface 370 may include anEthernet interface, an optical interface, a coaxial interface, aninfrared interface, a radio frequency (RF) interface, a universal serialbus (USB) interface, a Wi-Fi interface, a cellular network interface, orthe like.

Device 300 may perform one or more processes described herein. Device300 may perform these processes in response to processor 320 executingsoftware instructions stored by a computer-readable medium, such asmemory 330 and/or storage component 340. A computer-readable medium isdefined herein as a non-transitory memory device. A memory deviceincludes memory space within a single physical storage device or memoryspace spread across multiple physical storage devices.

Software instructions may be read into memory 330 and/or storagecomponent 340 from another computer-readable medium or from anotherdevice via communication interface 370. When executed, softwareinstructions stored in memory 330 and/or storage component 340 may causeprocessor 320 to perform one or more processes described herein.Additionally, or alternatively, hardwired circuitry may be used in placeof or in combination with software instructions to perform one or moreprocesses described herein. Thus, implementations described herein arenot limited to any specific combination of hardware circuitry andsoftware.

The number and arrangement of components shown in FIG. 3 are provided asan example. In practice, device 300 may include additional components,fewer components, different components, or differently arrangedcomponents than those shown in FIG. 3. Additionally, or alternatively, aset of components (e.g., one or more components) of device 300 mayperform one or more functions described as being performed by anotherset of components of device 300.

FIGS. 4A and 4B are diagrams of an example implementation 400 ofinterface adaptation.

With regard to FIG. 4A, client device 210 may provide, via a userinterface of TCE 220, a user interface element 401 to provide adrag-and-drop functionality to configure an interface adapter. Block 405may be established in a graphical model to receive input signals 410(e.g., 6 signals) from a set of source blocks and to provide outputsignals 415 (e.g., 9 signals) to a set of destination blocks. Block 405may include a set of parameters 420 (e.g., “P₁, P₂, . . . , P_(L)”). Asshown by reference number 425, block 405 may include a graphicalrepresentation of a textual element (e.g., program code). Client device210 may parse the program code representation of block 405 to determineone or more information groupings when receiving an instruction relatingto configuring the interface adapter.

As further shown in FIG. 4A, and by reference number 430-1, clientdevice 210 may receive, via a user interface, an interaction causingclient device 210 to position an indicator, ‘V,’ in association with aninput portion of block 405. The interaction may include a drag-and-dropinstruction, a point-and-click instruction, or the like. Assume that Videntifies a [4 2] vector variable. Attributes of the vector may bespecified via another user interface module (e.g., a pop-up menu), maybe automatically determined (e.g., by parsing the program code), or thelike. Client device 210 may group input signals 410 into a first inputvector of 4 signals and a second input vector of 2 signals, therebyconfiguring the interface adapter for input signals 410. Client device210 may select the 4 signals of input signals 410 for the first vectorand the 2 signals of input signals 410 for the second vector. Clientdevice 210 may select the signals based on a set of selection criteria,such as based on the program code representation of block 405. Inanother example, client device 210 may select the signals based on anorder of the signals, such as a graphical order (e.g., top-to-bottomorder of input signals 410), a descriptive order (e.g., an alphabeticalorder of names of input signals 410), or the like.

As further shown in FIG. 4A, and by reference number 430-2, clientdevice 210 may receive, via a user interface, an interaction causingclient device 210 to position an indicator, ‘P,’ in association with aparameter portion of block 405 (e.g., a portion of block 405 associatedwith representing parameters of block 405). Assume that P identifies astructure variable. This may cause client device 210 to group parameters420 into one or more structure parameters associated with the structurevariable. In another example, client device 210 may receive aninstruction associated with a bus object, rather than a structurevariable, and may group the parameters in association with the busobject.

As further shown in FIG. 4A, and by reference number 430-3 and 430-4,client device 210 may receive, via a user interface, an interactioncausing client device 210 to position a first indicator ‘A,’ of a firststructure variable. Similarly, client device 210 may position a secondindicator ‘B,’ of a second structure variable. A and B may be positionedat output portions of block 405. This may cause client device 210 togroup output signals 415 into respective structure signals for the firststructure variable and the second structure variable. Client device 210may group the respective structure signals based on the program coderepresentation of block 405. In another example, client device 210 mayreceive an instruction associated with a bus object, rather than a setof structure variables, and may group output signals 415 in associationwith the bus object.

In another example, when client device 210 determines that block 405includes more internal outputs than are associated with signals,extraneous output signals may be terminated. Additionally, oralternatively, when client device 210 determines that block 405 includesfewer internal outputs than are associated with signals 460, clientdevice 210 may cause extra signals to be grounded signal elements.

As shown in FIG. 4B, based on receiving the interactions to configurethe interface adapter, client device 210 provides a representation ofblock 405 with the interface adapter configured. For example, clientdevice 210 represents input signals 410 as input signals 450 (e.g., aset of input vectors) associated with a variable 455. Similarly, clientdevice 210 represents output signals 415 as output signals 460 (e.g., aset of structure signals) with structure variables 465 (e.g., ‘A’ and‘B’). Similarly, client device 210 represents parameters 420 as one ormore structure parameters of variable 470 (e.g., a structure variable).

As indicated above, FIGS. 4A and 4B are provided merely as an example.Other examples are possible and may differ from what was described withregard to FIGS. 4A and 4B.

FIGS. 5A and 5B are diagrams of an example implementation 500 ofinterface adaptation.

With regard to FIG. 5A, client device 210 may configure an interfaceadapter based on an inheritance from a source, a destination, a parent,or the like. A source may refer to a source of a signal (e.g., a sourceblock). Similarly, a destination may refer to a destination of a signal(e.g., a destination block). A parent may refer to a parent subsystemwith which a particular block is associated.

Block 505 is associated with receiving data included in a set of signals510 and providing a set of signals 515. Block 505 may receive signals510 from a first source block S1 and a second source block S2. Block 505may provide data, via signals 515, to a first destination block D1 and asecond destination block D2. Block 505 may include a set of parameters(e.g., “P₁, P₂, . . . , P_(L)”). Block 505 may include a textual elementassociated with representing program code 525.

Client device 210 may analyze program code 525, and may determine thatS1 is associated with an output of a vector [4] (e.g., a vectorassociated with 4 values corresponding to 4 signals of signals 510) andthat S2 is associated with an output of a vector [2]. Client device 210may configure an interface adapter to cause the 6 total input elementsof S1 and S2 to be partitioned into two input ports of block 505.Similarly, client device 210 may analyze program code 525, and maydetermine that D1 is associated with receiving a structure signal with aset of field names (e.g., “y₁, y₂, y₃”) and that D2 is associated withreceiving a structure signal with a set of field names (e.g., “y₅, . . ., y_(J)”). Client device 210 may configure the interface adapter topackage output elements of block 505 (e.g., signals 515) into 2structure signals for transmission to D1 and D2. Similarly, clientdevice 210 may analyze program code 525, and may determine that the setof parameters is associated with a structure parameter. Client device210 may configure the interface adapter to group parameters P₁, P₂, . .. , P_(L) into a structure parameter P_(S).

With regard to FIG. 5B, client device 210 may provide a presentation ofblock 505 and the interface adapter based on configuring the interfaceadapter. As shown by reference number 550, blocks S1 and S2 may provideinput to block 505 that is partitioned into two signals for receipt asvector 555 (e.g., “[V]”) via input ports of block 505. As shown byreference number 560, blocks D1 and D2 may receive output from block 505that is packaged into two structure signals including two structurevariables 565 (e.g., respectively, a first structure variable “[A]” anda second structure variable “[B]”). As shown by reference number 570,block 505 may be presented as including a single structure parameterP_(s) representing the group of parameters 520.

As indicated above, FIGS. 5A and 5B are provided merely as an example.Other examples are possible and may differ from what was described withregard to FIGS. 5A and 5B.

FIGS. 6A and 6B are diagrams of an example implementation 600 ofinterface adaptation.

FIG. 6A illustrates an external representation of a model. The externalrepresentation may abstract one or more functionalities being performedby an interface adapter (e.g., an expansion layer). The model mayrepresent a bus signal (e.g., a composite signal) being logged to a “ToWorkspace” block. As shown by reference numbers 605-1, 605-2, and 605-3,the model may include a set of signal elements of the bus signal (e.g.,“Sine Wave,” “Sine Wave 1,” and “Sine Wave 2”). The set of signalelements may be combined at model element 610 and provided to block 615(e.g., the “To Workspace” block). Each signal element of the bus signalmay be associated with one or more signal attributes (e.g., a dimension,a data type, a sample rate, or the like). Signal elements of the bussignal may be associated with different signal attributes. Block 615 mayinclude a single graphical port to which the bus signal is directed.Assume that the single graphical port is not configured to receive thesingle bus signal.

FIG. 6B illustrates an internal representation of the model. Theinternal representation provides a granular view of the functionalitiesbeing performed by the interface adapter. With regard to FIG. 6B, clientdevice 210 may configure the interface adapter to generate a portexpansion layer to cause block 625 to be configured to receive the bussignal via the single graphical port. As shown by reference numbers 620and 625, client device 210 may perform a subsystem generation procedure.For example, client device 210 may automatically generate a subsystemincluding an inport block (e.g., an input to block 615), a bus selector(e.g., to process data in the bus signal and output the data as separatesignal elements), and a multi-port “To Workspace” block (e.g., whichincludes inports “in1,” “in2,” and “in3”) to process the bus signal.Client device 210 maps the graphical port to the set of internal portsusing a set of connector lines (e.g., via model element 610 and busselector 620).

In another example, client device 210 may utilize an expansion layer forother blocks, such as s-functions, MATLAB systems, MATLAB functions,Stateflow diagrams, model reference blocks, or the like. In this manner,client device 210 generates a port expansion layer that permits block615 to perform functionalities, such as processing a bus signal or thelike.

In this manner, client device 210 improves graphical modeling byobviating the need for a user to design a subsystem to expand a bus andprovide the bus to a block. Moreover, client device 210 reducesbookkeeping associated with managing interface expansion for interfaceswith large (e.g., greater than a threshold) quantities of ports.Furthermore, client device 210 reduces a quantity of errors associatedwith adapting a block to receive a bus signal relative to a manualadaptation.

As indicated above, FIGS. 6A and 6B are provided merely as an example.Other examples are possible and may differ from what was described withregard to FIGS. 6A and 6B.

FIGS. 7A-7C are diagrams of an example implementation 700 of interfaceadaptation.

With regard to FIG. 7A, client device 210 may utilize an interfaceadapter to automatically adapt a block 705 to receive information.Assume that block 705 includes two graphical input ports for receivingsignals conveying the information. The information may be received as afirst bus signal 710 and a second bus signal 715. First bus signal 710includes three signal elements 710-1, 710-2, and 710-3, respectively.Second bus signal 715 may include two signal elements 715-1 and 715-2. Asignal element may refer to a portion of a signal, such as a particularsignal included in a bus signal, a bus signal included within anotherbus signal, or the like. Client device 210 may cause a first busselector 725-1 and a second bus selector 725-2 to be generated toreceive bus signal 710 and bus signal 715, respectively. The interfaceadapter may cause bus selector 725-1 and 725-2 to map signal elements710-1, 710-2, 710-3, 715-1, and 715-2 to 5 internal input ports ofsubsystem 720 (generated by client device 210). In this manner, clientdevice 210 permits block 705 to receive and process the informationincluded in bus signals 710 and 715.

As shown in FIG. 7B, client device 210 may utilize an interface adapterto automatically adapt a similar block 705 to receive information. Block705 may include a single graphical input port that receives a single bussignal 710, which includes five signal elements (e.g., 710-1, 710-2,710-3, 710-4, and 710-5). Client device 210 may generate a bus selector730 for the single graphical input port that causes the five signalelements to map to the 5 internal input ports of subsystem 720, therebypermitting block 705 to receive and process the information included inbus signal 710.

As shown in FIG. 7C, client device 210 may utilize an interface adapterto automatically adapt another similar block 705 to receive information.Block 705 may include a single graphical input port for receiving asingle bus signal 710, which includes five signal elements (e.g., 710-1,710-2, 710-3, 710-4, and 710-5). The five signal elements may beincluded in the bus signal in a different order than an order with whichblock 705 is configured to receive the signal elements. Client device210 may parse signal element names (e.g., “<data>,”“<upper_saturation_limit>,” “<lower_saturation_limit>,” “<reset>,” and“<increment>”) and may generate a bus selector 735 and a set ofconnector lines to map the signal elements to corresponding internalports of subsystem 720 (e.g., with names “data,” “upper,” “lower,”“increment,” and “reset”). In this way, client device 210 facilitates arearrangement of signals to automatically map signals to correspondinginputs. In another example, client device 210 may utilize differentinformation to permit a mapping, such as based on matching a set ofidentifiers, matching an attribute of an output block (e.g., block 735)to an attribute of an input block (e.g., block 720), a characteristic ofa signal, or the like.

As indicated above, FIGS. 7A-7C are provided merely as an example. Otherexamples are possible and may differ from what was described with regardto FIGS. 7A-7C.

FIGS. 8A-8D are diagrams of an example implementation 800 of interfaceadaptation.

FIG. 8A may illustrate a view of a model 805 (e.g., “mtop1”), whichincludes a model block 810 (e.g., “CounterA”). Model block 810 mayinclude an internal model (e.g., “msub1”) that is associated withperforming one or more functionalities of model block 810. Model block810 may be associated with receiving bus signals 812-1 and 812-2 (e.g.,respectively, “COUNTERBUS” and “INCREMENTBUS”). Model block 810 mayinclude composite ports (i.e., graphical inputs) 815-1 and 815-2 (e.g.,respectively, “Input” and “Increment”). Composite ports 815-1 and 815-2may receive bus signals 812-1 and 812-2, respectively. As shown byreference number 820, client device 210 may generate program code forthe composite ports. In this case, the program code may reference theset of bus signals, thereby providing program code that is easilyunderstandable to a user viewing the view of model 805 provided in FIG.8A.

In some implementations, the program code may be editable program code,and an edit to the program code may be integrated into a presentation ofthe composite ports. For example, client device 210 may receive an editto the program code, such as a rearrangement of arguments relating tothe composite ports, and client device 210 may rearrange a presentationof the composite ports in model 805 based on the rearrangement of thearguments relating to the composite ports. In this way, client device210 ensures that the model and program code correspond in an easilyunderstandable manner.

FIG. 8B may illustrate a view of an internal model referenced by model805 via model block 810. As shown in FIG. 8B, model block 810 mayinclude an expanded set of input ports (e.g., internal inputs) 825-1through 825-5 to receive bus signals 812-1 and 812-2. The set of inputports 825-1 through 825-5 may include, respectively, “<data>,”“<upper_saturation_limit>,” “<lower_saturation_limit>,” “<increment>,”and “<reset>”). As shown by reference number 830, client device 210 maygenerate program code for the expanded set of input ports thatreferences the signal elements of the set of bus signals, therebyproviding program code that is easily understandable to a user viewingthe view of model block 810 shown in FIG. 8B. In this way, client device210 can generate program code that includes a code interface thatcorresponds to an interface of a graphical model. For example, clientdevice 210 may generate a first version of program code with a firstcode interface that corresponds to an interface of a particularcomponent and a second version of program code with a second codeinterface that corresponds to an interface of a port expansion layer, ahierarchical expansion layer, or the like.

In this manner, client device 210 may provide a user with program codethat corresponds to the graphical inputs or the internal inputs, therebyimproving code readability. For example, a user assigned to debugproblems with model 805 may prefer code simplifying model block 810 tothe graphical input representation. In contrast, a user assigned todebug problems with model block 810 may prefer code representing theinternal inputs of model block 810.

FIG. 8C may illustrate an interface adapter (e.g., a port expansionlayer 845) for model block 810. The first bus signal 812-1 of model 805may include a first signal element 850 (e.g., a 32-bit integer (int32),“data”), a second signal element 852 (e.g., an int32, “upper”), and athird signal element 854 (e.g., an int32, “lower”). The second bussignal of model 805 may include a first signal element 856 (e.g., anint32, “increment”) and a second signal element 858 (e.g., a Boolean,reset).

As further shown with regard to FIG. 8C, client device 210 may generatebus creator 860, which receives signal elements 852 and 854, and whichprovides signal 862 (e.g., a double). Client device 210 may generate buscreator 864, which receives signal element 850 and signal 862, and whichprovides signal 866 (e.g., a double) to a first input of model block810. In this way, three signal elements of first bus signal 812-1 areprovided to a single input port of model block 810 via port expansionlayer 845.

As further shown with regard to FIG. 8C, client device 210 may generatebus creator 868, which receives signal elements 856 and 858, and whichprovides signal 870 (e.g., a double) to a second input of model block810. In this way, two signal elements of second bus signal 812-2 areprovided to a single input port of model block 810 via port expansionlayer 845.

In some implementations, client device 210 may generate program coderepresenting bus creator 868 and/or one or more other components of aninterface adapter. For example, client device 210 may generate programcode to permit simulation. In this case, when client device 210determines to generate program code for model 805, client device 210 maygenerate program code representing model 805 including the interfaceadapter, rather than generating program code representing an underlyingmodel of model 805 (i.e., model 805 not including the interfaceadapter). In another example, based, for example, on a user selection,client device 210 may generate the program code based on model 805 notincluding the interface adapter. In some implementations, client device210 may insert generated code at a particular location. For example,when an interface adapter is generated at the callee side of model 805,as in FIG. 8B, client device 210 may generate program code representingthe interface adapter at a portion of program code associated with thecallee side of model 805. In contrast, when an interface adapter isgenerated at the caller side of model 805, as in FIG. 8C, client device210 may generate program code representing the interface adapter at aportion of program code associated with the caller side of the model.

In this way, client device 210 provides a layered view of the interfaceadapter of model 805 in relation to the internal model of model block810.

FIG. 8D may illustrate a view of the interface adapter (e.g., anotherport expansion layer 875) for the internal model of block 810. Theinterface adapter may correspond to the interface adapter shown in FIG.7A. In this way, client device 210 provides another layered view of theinterface adapter of model 805 in relation to model 805.

As indicated above, FIGS. 8A-8D are provided merely as an example. Otherexamples are possible and may differ from what was described with regardto FIGS. 8A-8D.

FIG. 9 is a flow chart of an example process 900 for port management fora graphical model. In some implementations, one or more process blocksof FIG. 9 may be performed by client device 210. In someimplementations, one or more process blocks of FIG. 9 may be performedby another device or a group of devices separate from or includingclient device 210, such as server device 230.

As shown in FIG. 9, process 900 may include receiving a model (block910). For example, client device 210 (e.g., TCE 220) may receive a model(e.g., a graphical model). In some implementations, client device 210(e.g., TCE 220) may receive the model based on a user creating themodel. For example, a user may cause client device 210 to create or opena user interface. The user may then cause client device 210 to add oneor more model blocks and/or model elements to the user interface tocreate the model. In some implementations, client device 210 may receivea command, from the user, that indicates that a model block and/or amodel element is to be added to the user interface. Client device 210may receive the command based, for example, on detecting a selection ofa particular menu item, entry of a particular textual or audible inputfrom the user, and/or entry of some other predetermined input thatindicates a desire to add a model block and/or a model element to theuser interface. As another example, client device 210 may receive input(e.g., a drag and drop) that indicates that a model block and/or a modelelement, included in a block library and/or a model element libraryassociated with TCE 220, is to be added to the user interface. Based onthe command, client device 210 may add the model block and/or the modelelement to the user interface.

In some implementations, client device 210 may receive informationidentifying the model, such as a name of the model, and informationidentifying a memory location at which the model is stored. The memorylocation may be located within client device 210 or external to, andpossibly remote from, client device 210. Client device 210 may, based onreceiving the request, retrieve the model from the memory location. Insome implementations, client device 210 may determine information abouta portion of a model based on information associated with the model. Forexample, client device 210 may obtain an XML file associated with amodel, and may parse the XML file to determine information regarding amodel block of the model, a port of the model, or the like. In thiscase, client device 210 may utilize a natural language processingtechnique, an XML parsing technique, a matching technique (e.g., tocompare the XML file to another XML file stored via a repository of XMLfiles), or the like to determine the information.

As further shown in FIG. 9, process 900 may include constructing aninterface adapter (block 920). For example, client device 210 mayconstruct the interface adapter (e.g., one or more expansion layers). Insome implementations, client device 210 may construct an interfaceadapter to cause a component associated with an interoperability issue(e.g., a component that is incompatible with a portion of a model) to becompatible with the portion of the model (e.g., to provide compatibilityfor two or more components. For example, client device 210 may utilizean interface adapter to perform an adaptation service for (e.g.,facilitate an exchange of information between, based on generating anexpansion layer to permit compatibility for) a source block and adestination block (e.g., that are graphically connected), a parentsystem and a child subsystem (e.g., that are associated by ahierarchical relationship), a graphical block to a non-graphical block(e.g., from a first block for which a functionality is representedgraphically, such as via iconography, layout, shape, shading, size, etc.to a second block for which the functionality is represented textuallyor as a binary representation, such as a dynamic-link library (DLL), anexecutable (EXE), an extensible markup language (XML) interface, MATLABcode, a textual block, etc.), a differential algebraic equation, or thelike.

In some implementations, client device 210 may construct a graphicalexpansion layer as the interface adapter. For example, client device 210may construct a set of graphical model elements to facilitateinteroperability for a set of graphical components. In this way, clientdevice 210 permits interoperability for graphical portions of a model.Additionally, or alternatively, client device 210 may construct atextual expansion, such as for a graphical component and a textualcomponent (e.g., a textual block), a set of textual components, or thelike. In this way, client device 210 permits interoperability fortextual portions of a model.

In some implementations, client device 210 may construct the interfaceadapter based on receiving a trigger. For example, client device 210 maydetect a user interaction with a particular component provided via auser interface, and may determine that the user interaction isassociated with causing the interface adapter to be generated (e.g., forthe particular component, for another component, etc.). Additionally, oralternatively, client device 210 may be automatically triggered toconstruct the interface adapter based on an event. For example, clientdevice 210 may receive an instruction to perform a simulation of amodel, to generate program code for a model, or the like, and mayconstruct the interface adapter for one or more portions of the modelbased on receiving the instruction.

In some implementations, client device 210 may provide one or more userinterface elements associated with configuring the interface adapter.For example, client device 210 may provide an option to enable/disableconstruction of the interface adapter. Additionally, or alternatively,client device 210 may provide an option to switch views of a modeland/or an interface adapter associated therewith after the interfaceadapter is constructed. For example, client device 210 may receive aselection to provide a first view presenting an input/output signalstructural view. Additionally, or alternatively, client device 210 mayreceive a selection to provide a flat view (e.g., that simplifies themodel). Additionally, or alternatively, client device 210 may receive aselection to provide a hybrid view (e.g., that simplifies a firstportion of the model and provides an input/output signal structural viewof a second portion of the model). In some implementations, clientdevice 210 may automatically select a presentation based on anenvironment, such as a simulation environment, a debugging environment,a code generation environment, or the like.

In some implementations, client device 210 may identify one or morecomponents for which to construct the interface adapter. For example,client device 210 may determine, for an output interface of a firstblock and an input interface of a second block, that the input interfaceand the output interface are associated with different communicationsrequirements. In some implementations, the different communicationsrequirements may include a temporal difference (e.g., a sample timedifference), a spatial difference (e.g., a fixed point and floatingpoint representation difference), a structural difference (e.g., anaggregation of elements difference), a complexity difference (e.g., areal part and imaginary part difference), a domain difference (e.g.,whether a port represents a causal relation, a non-causal relation, orthe like), a connection difference (e.g., a difference relating toequality, assignment, production or consumption, etc.), an executiondifference (e.g., a difference relating to a discrete time execution, adiscrete event execution, a continuous time execution, a blocking ornon-blocking execution, etc.). For example, the first block and thesecond block may be associated with different signal dimensions,different signal data types, different signal sample rates, or the like.Similarly, a first port may be a causal port and a second port may be anon-causal port, and client device 210 may determine to generate a setof components to create a connection between the first port and thesecond port. Additionally, or alternatively, client device 210 maydetermine that a first block and a second block are associated withsimilar internal implementations (e.g., referenced models), but areassociated with different graphical interfaces (e.g., graphicalrepresentations of external ports), such as different iconography, portlayouts, geometric shapes, sizes, colors, annotations, shading, badges,or the like.

Additionally, or alternatively, client device 210 may determine thatparameters (e.g., of a block) mismatch required parameters. For example,client device 210 may determine that parameters of a particular blockare grouped into a structure variable in a parent system. In this case,client device 210 may construct an interface adapter to perform thegrouping of the parameters, such as based on a model hierarchy, aheterogeneous grouping associated with a characteristic of theparameters being grouped, or the like. In some implementations, thegrouping may be selected by a user via client device 210. For example,the user may select a set of parameters that are associated with thesame characteristic (e.g., a particular data type), and may cause theparameters to be grouped into the structure variable. Additionally, oralternatively, client device 210 may automatically group the set ofparameters based on the set of parameters being associated with the samecharacteristic, such as based on determining that each parameter of theset of parameters are associated with the particular data type.

In some implementations, client device 210 may identify a particularsignal or parameter for which to construct the interface adapter. Forexample, client device 210 may construct the interface adapter toperform a data conversion associated with a particular signal orparameter, such as for vector-type data, matrix-type data, array-typedata, a functional mock-up interface (FMI)-type data (e.g., datarelating to a set of models of physical or non-physical systems), afunctional mock-up unit (FMU)-type data (e.g., a data file storing datarelating to an FMI), a differential algebraic equation (DAE) (e.g., asystem of DAEs involving functions of an independent variable and/orderivatives thereof), an algebraic equation, composite data (e.g., dataconstructed from one or more primitives or other composite types),non-composite data (e.g., a primitive or a reference), a combination ofcomposite data and non-composite data, a bus signal, a structure (e.g.,a non-virtual bus), an array of bus signals, an array of structuresignals, a scalar, a virtual bus (e.g., a tie-wrap), or the like. Inthis case, as an example, client device 210 may identify a port (e.g., aconnection port, a function-call port, an input port, an output port, orthe like) or data structure associated with the particular signal orparameter. For example, client device 210 may determine that an inputinterface is associated with receiving a signal including multiplevectors and that the signal is a matrix. In this case, client device 210may construct an interface adapter associated with causing the matrix tobe received at the interface as the multiple vectors.

In some implementations, client device 210 may utilize a particularapplication programming interface (API) to obtain, alter, and/or provideinformation relating to one or more components associated with aninterface adapter. For example, client device 210 may utilize an APIassociated with FMI-type data or FMU-type data such as export commands,import commands, simulation commands, data type alteration commands,output calls, update calls, zero crossing calls, or the like, which maybe incorporated into an interface adapter to provide data, receive data,alter data, or the like.

In some implementations, client device 210 may receive informationassociated with identifying the one or more components for which toconstruct the interface adapter. For example, client device 210 mayprovide a drag-and-drop functionality via the user interface to tag avariable, a block, a port, or the like for the interface adapter.Similarly, client device 210 may provide a selection functionality. Forexample, a user may utilize a selection tool (e.g., a lasso tool, amarquee tool, or the like) to select a set of signals for grouping intoa structure variable. Additionally, or alternatively, client device 210may identify a component that lacks a port for which to generate aninterface adapter. For example, when client device 210 detects aninteraction (e.g., via a user interface) that is associated withindicating a connection with a block, client device 210 may select theblock for an interface adapter that creates a port for the block.

In some implementations, client device 210 may identify the one or morecomponents for which to construct the interface adapter based onassociated information. For example, client device 210 may identify ablock for which to construct the interface adapter, and may analyze amodel that includes the block to identify another component associatedwith the block, such as a source component (e.g., a source block), adestination component (e.g., a destination block), a parent system(e.g., when the block is a subsystem), an Automotive Open SystemsArchitecture (AUTOSAR) component, or the like. In this case, clientdevice 210 may construct the interface adapter for the block and theother component based on determining that the other component isassociated with the block. In this manner, client device 210 may permitcommunication between the block and the other component.

In some implementations, client device 210 may identify the one or morecomponents based on information regarding a model. For example, clientdevice 210 may identify an extensible markup language (XML) fileincluding a set of scalar parameters (e.g., an XML file associated witha functional mock-up interface, a functional mock-up unit, or the like).In this case, client device 210 may automatically adapt the set ofscalar parameters into a set of structures to utilize the XML file for amodel.

In some implementations, client device 210 may identify a componentbased on a type of signal being received by a type of connection. Forexample, client device 210 may determine that a first block isassociated with a causal connection and a second block is associatedwith a non-causal connection, and may identify the first block and thesecond block for constructing the interface adapter based on themismatch between the causal connection and the non-causal connection.

In some implementations, client device 210 may generate a component whenconstructing the interface adapter. For example, when generating anexpansion layer for the interface adapter, client device 210 maygenerate a subsystem representing an operation of a model block.Additionally, or alternatively, when generating an interface adapter fora signal, client device 210 may generate a port, a bus selector, a buscreator, or the like to permit a signal to be transmitted. Additionally,or alternatively, client device 210 may generate a signal, alter asignal, generate a parameter, alter a parameter, or the like. Forexample, client device 210 may generate a port expansion layer thatincludes a bus, a set of connector lines (e.g., a PhysMod connector linewith semantics based on laws of physics, a function-call line, a messageline, a control signal line, etc.). In this case, the set of connectorlines may be causal or non-causal, may be part of a system ofdifferential and/or algebraic equations, or the like.

Further to the example, a port may be associated with a first set ofattributes (e.g., a set of inherited attributes) and client device 210may associate the port with a connection that is associated with asecond, different set of attributes. In this case, client device 210 mayadapt the port (e.g., alter the first set of attributes to cause theport to interoperate with the connection associated with the second setof attributes). Additionally, or alternatively, client device 210 mayselect a version of a component based on attributes of a connection. Forexample, when the port is polymorphic (e.g., associated with multipledifferent versions with corresponding attributes), client device 210 mayselect a version of the port associated with attributes that match thesecond set of attributes.

In some implementations, client device 210 may adapt a component basedon a validity range. For example, client device 210 may determine that aparticular connection is associated with a particular validity range(e.g., an accuracy compatibility), and may select one or more componentsto adapt the connection based on a validity range of the one or morecomponents matching the particular validity range of the particularconnection. In some implementations, client device 210 may adapt acomponent based on a type of unit. For example, client device 210 maydetermine that a particular connection is associated with a particulartype of unit (e.g., a physical unit), and may select one or morecomponents to adapt the connection based on the one or more componentsbeing associated with the same type of unit.

Additionally, or alternatively, client device 210 may generate acomponent associated with changing a state. For example, when clientdevice 210 identifies a state writer block that writes a state with adifferent structure from another component to which the state is written(e.g., a block, an XML file, a functional mock-up unit (FMU), or thelike), client device 210 may generate one or more components associatedwith altering the state being written to the different structure, tocause the state to match the structure of the other component.Additionally, or alternatively, client device 210 may utilize otherstate alteration blocks for an interface adapter, such as a state readerblock to read a state. In this case, client device 210 may generate oneor more blocks to alter the state after reading the state, and a statewriter block to write the state after altering the state. In someimplementations, client device 210 may generate a component to permit astate writer block associated with a first structure to write to anothercomponent with a second structure. For example, using one or morecomponents (e.g., one or more blocks, a command of an FMI API, etc.),client device 210 may generate an interface adapter to permit the statewriter block associated with the first structure to write a state to anFMI associated with the second structure.

In some implementations, client device 210 may generate a connectionwhen constructing the interface adapter. For example, client device 210may generate a link associated with representing and/or causinginformation to be transmitted from a first portion of a model to asecond portion of the model. In some implementations, client device 210may map a signal when constructing the interface adapter. For example,client device 210 may map a signal element of a bus signal to aparticular internal input port of a port expansion layer. Additionally,or alternatively, client device 210 may map a parameter whenconstructing the interface adapter. For example, client device 210 maymap one or more variables of a child subsystem to a structure variableof a parent system. In some implementations, client device 210 may mapthe one or more variables to the structure variable based on a name ofthe one or more variables and the structure variable, an identifierassociated with the one or more variables and the structure variable, auser input associated with selecting the mapping, or the like.

In some implementations, client device 210 may map a set of connectionsbased on one or more characteristics of an array associated with a port.For example, an array may be associated with a size, a dimension, or thelike, and client device 210 may map a set of connections associated withthe port based on the size of the array, the dimension of the array, aset of identifiers included in the array, or the like.

In some implementations, client device 210 may receive informationassociated with determining a mapping. For example, client device 210may receive, via the user interface, information associated withidentifying a port to which to map a signal, a structure variable towhich to map a vector variable, or the like. In some implementations,client device 210 may perform a mapping based on correspondinginformation of a first part and a second part of the mapping. Forexample, when the first part of the mapping is an English word (e.g.,engine) and the second part of the mapping is a German word (e.g.,maschine, which translates to engine), client device 210 may determinethat the second part is a German word and may translate the German wordto English to determine that the first part corresponds to and is to bemapped to the second part. Similarly, client device 210 may account fora partial match when performing a mapping. For example, client device210 may map a first part to a second part despite a spelling error, atypo, an inclusion or exclusion of a suffix or a prefix, or the like. Inthis case, client device 210 may perform the mapping based on the firstpart and the second part satisfying a threshold matching criterion.

Additionally, or alternatively, client device 210 may analyze a signalor a parameter to determine the mapping. For example, client device 210may map a set of signals graphically (e.g., in a top-to-bottom manner,in a left-to-right manner, etc.). Additionally, or alternatively, clientdevice 210 may map the set of signals based on another ordering. Forexample, client device 210 may alphabetically map a set of signals to aset of ports based on name information for the set of signals (e.g., aset of signal names) and the set of ports (e.g., a set of port names).

Additionally, or alternatively, client device 210 may map the set ofsignals based on matching name information (e.g., client device 210 maymap a signal identified as “reset” to a port identified as “reset”).Additionally, or alternatively, client device 210 may map the set ofsignals to the set of ports based on a bus leaf signal depth order(e.g., when the set of signals are signal elements of a bus signal), ahierarchy associated with the set of signals, or the like. In someimplementations, client device 210 may map the set of signals based on aspecification (e.g., a document describing a mapping of signals). Forexample, client device 210 may obtain a port expansion specification(e.g., a design document describing ports and signals of a model) for areferenced model of a component, and may perform a mapping of signals toports (e.g., for an expansion layer of an interface adapter) based onthe port expansion specification. In some implementations, client device210 may obtain information identifying a storage class requirement. Forexample, client device 210 may map signals to ports based on storageclass requirements (e.g., one or more requirements relating to memoryrequirements of the signals or ports) associated with the signals andthe ports (e.g., corresponding a storage class of a particular signal toa port associated with the same storage class).

As further shown in FIG. 9, process 900 may include providinginformation associated with the interface adapter (block 930). Forexample, client device 210 may provide information associated with theinterface adapter. In some implementations, client device 210 may altera presentation of one or more components in a user interface. Forexample, client device 210 may cause a representation of a block to bealtered to provide a representation of one or more components associatedwith the interface adapter, such as one or more bus selectors, one ormore internal input ports, or the like. Additionally, or alternatively,client device 210 may alter a presentation of a portion of a model. Forexample, client device 210 may alter a presentation of one or moreblocks of the model to provide information regarding an interfaceadapter constructed for the one or more blocks of the model, and mayhide information regarding the interface adapter from another portion ofthe model. In this way, client device 210 may avoid adding unnecessaryvisual complexity to a model (e.g., based on providing a subset ofinformation associated with the model and hiding another subset ofinformation associated with the model).

In some implementations, client device 210 may associate the interfaceadapter with a layer, of a set of layers, and may provide informationassociated with the interface adapter based on providing informationassociated with the layer. For example, client device 210 may classify aset of layers of a model (e.g., layers associated with differing levelsof information granularity regarding the model) and may assign agraphical presentation of the interface adapter to a particular layer ofthe set of layers. In this case, when a user interacts with a userinterface to cause client device 210 to provide the particular layer(e.g., or a more granular layer than the particular layer), clientdevice 210 may be caused to provide a representation of the interfaceadapter. Additionally, or alternatively, client device 210 may providethe representation of the interface adapter when providing a layer, ofthe set of layers, more granular than the particular layer. In someimplementations, client device 210 may provide a representation of amask associated with a subsystem as a particular layer of the set oflayers. A mask may refer to an interface for an underlying block, andmay be associated with a logical workspace local to a hierarchy withwhich the mask is associated, the subsystem with which the mask isassociated, or the particular layer with which the mask is associated.In this case, client device 210 may provide a representation of the maskas a layer of a set of layers provided for a model.

In some implementations, client device 210 may provide a textualrepresentation of the interface adapter. For example, client device 210may generate a textual description of the interface adapter (e.g., aprogram code description, an extensible markup language (XML)description, etc.) or the like to represent the interface adapter for atextual model. In this way, client device 210 provides informationregarding the interface adapter when the interface adapter isconstructed for a textual model.

In some implementations, client device 210 may generate program codeassociated with the interface adapter, and may provide the program code.For example, client device 210 may generate code associated withexecuting a functionality of the interface adapter (e.g., program codeassociated with representing a port, program code associated withrepresenting a data type conversion, etc.). In this manner, clientdevice 210 may provide program code that reflects a model with aninterface adapter applied, rather than the model without the interfaceadapter applied, thereby facilitating debugging of the interfaceadapter. For example, client device 210 may provide first program codethat corresponds to the model without the interface adapter, as shown inFIG. 8A (e.g., showing program code representing two components of themodel), and second program code that corresponds to the model with theinterface adapter, as shown in FIG. 8B (e.g., showing program coderepresenting expanded inputs of the two components rather than the twocomponents). In some implementations, client device 210 may be caused togenerate program code representing the model without including programcode representing the interface adapter, thereby facilitating debuggingof the model without adding unnecessary complexity from interfaceadapter program code.

In some implementations, client device 210 may cause the model to beexecuted. For example, client device 210 may execute the model, and maycause two or more (previously) incompatible components to communicateusing the interface adapter. For example, a source block may provide asignal to a component via one or more other components constructed for aport expansion layer, an interface adaptation layer, or the like.Similarly, the component may provide a signal to one or more destinationblocks via one or more other components constructed for a port expansionlayer or the like. In some implementations, client device 210 may causeinformation to be transferred from a parent system to a child subsystem,from a child subsystem to a parent system, or the like (e.g., based onmapping parameter, mapping inputs, mapping outputs, or the like), asshown with regard to FIGS. 4A and 4B. In this manner, client device 210automatically facilitates compatibility for a model based onconstructing an interface adapter.

Although FIG. 9 shows example blocks of process 900, in someimplementations, process 900 may include additional blocks, fewerblocks, different blocks, or differently arranged blocks than thosedepicted in FIG. 9. Additionally, or alternatively, two or more of theblocks of process 900 may be performed in parallel.

In this way, client device 210 automatically generates components and/ormaps variables/parameters/signals to cause different components of amodel to interoperate. Moreover, client device 210 reduces visualcomplexity by selectively providing a presentation of an interfaceadapter and/or selectively providing program code representing theinterface adapter. Furthermore, client device 210 reduces a likelihoodof modeling errors associated with manually generating components forinteroperability, thereby reducing processing associated with repeatediterations of component generation and testing that a user may berequired to perform to ensure that components are generated correctly.

FIGS. 10A-10D are diagrams of an example implementation 1000 ofinterface adaptation.

As shown in FIG. 10A, client device 210 may provide, via TCE 220, apresentation of program code representing a model. The program code mayinclude portions of program code associated with representing portionsof the model (e.g., ports, connectors, variables, etc.). As shown inFIG. 10B, the model may include a set of model blocks, such as one ormore buses, selectors, or the like. Client device 210 may generate aninterface adapter to adapt signals, parameters, states, or the like ofthe model and/or the program code. For example, as shown in FIG. 10C,client device 210 may provide information regarding parameters of themodel in a structured manner, and may provide information regarding twoparameters Weight and Bias with respective values struct(‘v1’,0.2,‘v2’,0.5) and struct(‘v1’,0,‘v2’,0). A user interaction, detected byclient device 210, may cause client device 210 to change from providinginformation regarding the parameters of the model in the structuredmanner to providing information regarding parameters of the model in aflat manner. In this case, client device 210 may provide, for display,information regarding four parameters (e.g., corresponding to the twoparameters) Weight.v1, Weight.v2, Bias.v1, and Bias.v2. The fourparameters may be associated with respective values of 0.5, 0.5, 0, 0,corresponding to values of the two parameters.

In this manner, client device 210 provides textual informationcorresponding to different presentations of a model (e.g., a structuredpresentation using structure variables and a non-structured presentationusing non-structure variables). Moreover, client device 210 may permit auser to provide and/or view information in a first format (e.g., flat)for a model element that utilizes the information in a second format(e.g., structured). In some implementations, the textual information maydiffer from a graphical presentation of the model. For example, themodel may utilize a structured presentation of Weight and Bias and thetextual information may be presented in a flat, non-structuredpresentation.

As indicated above, FIGS. 10A-10D are provided merely as an example.Other examples are possible and may differ from what was described withregard to FIGS. 10A-10D.

FIG. 11 is a diagram of an example implementation 1100 of interfaceadaptation.

As shown in FIG. 11, and by reference number 1110, client device 210(e.g., TCE 200) may provide, for display, a design specificationdocument that is associated with describing a portion of a model element(e.g., TopBus that includes a set of elements A; B, which includes Q andR; and C, which includes S and T). In some implementations, the designspecification document may correspond to a portion of the model shown inFIGS. 8A-8D. As shown by reference number 1120, client device 210 mayreceive code associated with constructing TopBus. As shown by referencenumber 1130, a set of signals are specified for identifiers A, Q, and R.As shown by reference number 1140, virtual bus is specified for B basedon a map of signals Q and R. As shown by reference number 1150, anon-virtual bus is specified for C based on a bus object. As shown byreference number 1160, non-virtual bus C is included in virtual busTopBus. Based on the received code, client device 210 may automaticallygenerate a port expansion layer with three graphical ports. The firstport may be a scalar representing signal A. The second port may be avirtual bus (tie wrap) that includes a first port and a second portrepresenting signals Q and R respectively. The third port may be anon-virtual bus associated with receiving a structure (e.g., thatincludes signals S and T). In this way, an interface adapter may beconstructed based on a user specification for a referenced model.

As indicated above, FIG. 11 is provided merely as an example. Otherexamples are possible and may differ from what was described with regardto FIG. 11.

The foregoing disclosure provides illustration and description, but isnot intended to be exhaustive or to limit the implementations to theprecise form disclosed. Modifications and variations are possible inlight of the above disclosure or may be acquired from practice of theimplementations.

The term program code is to be broadly interpreted to include text-basedcode that may be automatically executed (e.g., C code, C++ code,Hardware Description Language (HDL) code, very-high-speed integratedcircuits (VHSIC) HDL (VHDL) code, Verilog, Java, and/or other types ofhardware or software based code that may be compiled and/orsynthesized); text files that may be executed in conjunction with otherexecutables. In one example, program code may include differentcombinations of the above-identified classes (e.g., text-based code,binary code, text files, etc.). Alternatively, or additionally, programcode may be of any type, such as function, script, object, etc., and aportion of program code may include one or more characters, lines, etc.of the program code.

Some implementations are described herein in connection with thresholds.As used herein, satisfying a threshold may refer to a value beinggreater than the threshold, more than the threshold, higher than thethreshold, greater than or equal to the threshold, less than thethreshold, fewer than the threshold, lower than the threshold, less thanor equal to the threshold, equal to the threshold, etc.

Certain user interfaces have been described herein and/or shown in thefigures. A user interface may include a graphical user interface, anon-graphical user interface, a text-based user interface, etc. A userinterface may provide information for display. In some implementations,a user may interact with the information, such as by providing input viaan input component of a device that provides the user interface fordisplay. In some implementations, a user interface may be configurableby a device and/or a user (e.g., a user may change the size of the userinterface, information provided via the user interface, a position ofinformation provided via the user interface, etc.). Additionally, oralternatively, a user interface may be pre-configured to a standardconfiguration, a specific configuration based on a type of device onwhich the user interface is displayed, and/or a set of configurationsbased on capabilities and/or specifications associated with a device onwhich the user interface is displayed.

It will be apparent that systems and/or methods, described herein, maybe implemented in different forms of hardware, firmware, or acombination of hardware and software. The actual specialized controlhardware or software code used to implement these systems and/or methodsis not limiting of the implementations. Thus, the operation and behaviorof the systems and/or methods were described herein without reference tospecific software code—it being understood that software and hardwarecan be designed to implement the systems and/or methods based on thedescription herein.

Even though particular combinations of features are recited in theclaims and/or disclosed in the specification, these combinations are notintended to limit the disclosure of possible implementations. In fact,many of these features may be combined in ways not specifically recitedin the claims and/or disclosed in the specification. Although eachdependent claim listed below may directly depend on only one claim, thedisclosure of possible implementations includes each dependent claim incombination with every other claim in the claim set.

No element, act, or instruction used herein should be construed ascritical or essential unless explicitly described as such. Also, as usedherein, the articles “a” and “an” are intended to include one or moreitems, and may be used interchangeably with “one or more.” Furthermore,as used herein, the term “set” is intended to include one or more items(e.g., related items, unrelated items, a combination of related andunrelated items, etc.), and may be used interchangeably with “one ormore.” Where only one item is intended, the term “one” or similarlanguage is used. Also, as used herein, the terms “has,” “have,”“having,” or the like are intended to be open-ended terms. Further, thephrase “based on” is intended to mean “based, at least in part, on”unless explicitly stated otherwise.

What is claimed is:
 1. A method, comprising: identifying a first modelelement and a second model element within a model as beingnon-interoperable, wherein: being non-interoperable comprises: anattribute of the first model element being incompatible with anattribute of the second model element, where an attribute of a modelelement comprises a parameter, a signal, a communications requirement,or a graphical interface of a model element, and the identifyingcomprises: mapping attributes of the first and second model elements toidentify incompatible attributes of the elements; generating anadaptation between the first and second model elements, the generatingcomprising: generating a layer that allows communication or compatibleconnection between the incompatible attributes or altering theincompatible attributes to make them compatible; and simulating themodel using the adaptation, or generating code for the model using theadaptation, by one or more processors, and executing the generated code.2. The method of claim 1, wherein the communications requirement beingincompatible comprises at least one of: a temporal difference, a spatialdifference, a structural difference, a complexity difference, a domaindifference, a connection difference, or an execution difference.
 3. Themethod of claim 2, wherein the communications requirement beingincompatible comprises at least one of: the temporal differencecomprising a sample time difference; the spatial difference comprising afixed point representation difference, or a floating pointrepresentation difference; the spatial difference comprising: a fixedpoint representation difference, or a floating point representationdifference; the structural difference comprising an aggregation ofelements difference; the complexity difference comprising a real partand imaginary part difference; the domain difference comprising whethera port represents a causal relation, or a non-causal relation; theconnection difference comprising a difference relating to at least oneof: equality, assignment, production or consumption; or the executiondifference comprising a difference relating to at least one of: adiscrete time execution, a discrete event execution, a continuous timeexecution, a blocking execution, or a non-blocking execution.
 4. Themethod of claim 1, wherein: the signal comprises a value that has a datatype and/or a dimension, complexity, sample time, the parametercomprises a value that has a data type and/or a dimension, complexity,sample time, and being incompatible comprises any of the data type,dimension, complexity, sample time being incompatible.
 5. The method ofclaim 1, wherein the graphical interface being incompatible compriseshaving at least one of different: iconography, port layouts, geometricshapes, sizes, colors, annotations, shading, or badges.
 6. The method ofclaim 1, wherein the layer comprises at least one of: one or morecomponents, a subsystem, an adaptation layer, or an expansion layer. 7.A computer-readable medium storing instructions, the instructionscomprising one or more instructions that, when executed by at least oneof one or more processors, cause one or more of the one or moreprocessors to: identify a first model element and a second model elementwithin a model as being non-interoperable, wherein: beingnon-interoperable comprises: an attribute of the first model elementbeing incompatible with an attribute of the second model element, wherean attribute of a model element comprises a parameter, a signal, acommunications requirement, or a graphical interface of a model element,and the identifying comprises: mapping attributes of the first andsecond model elements to identify incompatible attributes of theelements; generate an adaptation between the first and second modelelements, the generating comprising: generating a layer that allowscommunication or compatible connection between the incompatibleattributes or altering the incompatible attributes to make themcompatible; and simulate the model using the adaptation, or generatecode for the model using the adaptation and execute the generated code.8. The computer-readable medium of claim 7, wherein the communicationsrequirement being incompatible comprises at least one of: a temporaldifference, a spatial difference, a structural difference, a complexitydifference, a domain difference, a connection difference, or anexecution difference.
 9. The computer-readable medium of claim 8,wherein the communications requirement being incompatible comprises atleast one of: the temporal difference comprising a sample timedifference; the spatial difference comprising a fixed pointrepresentation difference, or a floating point representationdifference; the spatial difference comprising: a fixed pointrepresentation difference, or a floating point representationdifference; the structural difference comprising an aggregation ofelements difference; the complexity difference comprising a real partand imaginary part difference; the domain difference comprising whethera port represents a causal relation, or a non-causal relation; theconnection difference comprising a difference relating to at least oneof: equality, assignment, production or consumption; or the executiondifference comprising a difference relating to at least one of: adiscrete time execution, a discrete event execution, a continuous timeexecution, a blocking execution, or a non-blocking execution.
 10. Thecomputer-readable medium of claim 7, wherein: the signal comprises avalue that has a data type and/or a dimension, complexity, sample time,the parameter comprises a value that has a data type and/or a dimension,complexity, sample time, and being incompatible comprises any of thedata type, dimension, complexity, sample time being incompatible. 11.The computer-readable medium of claim 7, wherein the graphical interfacebeing incompatible comprises having at least one of different:iconography, port layouts, geometric shapes, sizes, colors, annotations,shading, or badges.
 12. The computer-readable medium of claim 7, whereinthe layer comprises at least one of: one or more components, asubsystem, an adaptation layer, or an expansion layer.
 13. A device,comprising: one or more processors configured to: identify a first modelelement and a second model element within a model as beingnon-interoperable, wherein: being non-interoperable comprises: anattribute of the first model element being incompatible with anattribute of the second model element, where an attribute of a modelelement comprises a parameter, a signal, a communications requirement,or a graphical interface of a model element, and the identifyingcomprises: mapping attributes of the first and second model elements toidentify incompatible attributes of the elements; generate an adaptationbetween the first and second model elements, the generating comprising:generating a layer that allows communication or compatible connectionbetween the incompatible attributes or altering the incompatibleattributes to make them compatible; and simulate the model using theadaptation, or generate code for the model using the adaptation andexecute the generated code.
 14. The device of claim 13, wherein thecommunications requirement being incompatible comprises at least one of:a temporal difference, a spatial difference, a structural difference, acomplexity difference, a domain difference, a connection difference, oran execution difference.
 15. The device of claim 14, wherein thecommunications requirement being incompatible comprises at least one of:the temporal difference comprising a sample time difference; the spatialdifference comprising a fixed point representation difference, or afloating point representation difference; the spatial differencecomprising: a fixed point representation difference, or a floating pointrepresentation difference; the structural difference comprising anaggregation of elements difference; the complexity difference comprisinga real part and imaginary part difference; the domain differencecomprising whether a port represents a causal relation, or a non-causalrelation; the connection difference comprising a difference relating toat least one of: equality, assignment, production or consumption; or theexecution difference comprising a difference relating to at least oneof: a discrete time execution, a discrete event execution, a continuoustime execution, a blocking execution, or a non-blocking execution. 16.The device of claim 13, wherein: the signal comprises a value that has adata type and/or a dimension, complexity, sample time, the parametercomprises a value that has a data type and/or a dimension, complexity,sample time, and being incompatible comprises any of the data type,dimension, complexity, sample time being incompatible.
 17. The device ofclaim 13, wherein the graphical interface being incompatible compriseshaving at least one of different: iconography, port layouts, geometricshapes, sizes, colors, annotations, shading, or badges.
 18. The deviceof claim 13, wherein the layer comprises at least one of: one or morecomponents, a subsystem, an adaptation layer, or an expansion layer. 19.A method, comprising: generating, by one or more processors, code for amodel that comprises a first model element and a second model elementthat are non-interoperable, wherein: being non-interoperable comprises:an attribute of the first model element being incompatible with anattribute of the second model element, where an attribute of a modelelement comprises a parameter, a signal, a communication requirement, ora graphical interface of a model element, and the generating comprisesgenerating code for an adaptation between the first and second modelelements, the generating code for the adaptation comprising: analyzingthe model to determine that the first model element is associated withthe second model element, and generating code for a layer that allowscommunication or compatible connection between the incompatibleattributes of the model elements or generating code for one or morealtered attributes of one of the model elements, where the one or morealtered attributes are compatible with corresponding attributes of theother one of the model elements, and executing, by the one or moreprocessors or another one or more processors, the generated code. 20.The method of claim 19, wherein the communications requirement beingincompatible comprises at least one of: a temporal difference, a spatialdifference, a structural difference, a complexity difference, a domaindifference, a connection difference, or an execution difference.
 21. Themethod of claim 20, wherein the communications requirement beingincompatible comprises at least one of: the temporal differencecomprising a sample time difference; the spatial difference comprising afixed point representation difference, or a floating pointrepresentation difference; the spatial difference comprising: a fixedpoint representation difference, or a floating point representationdifference; the structural difference comprising an aggregation ofelements difference; the complexity difference comprising a real partand imaginary part difference; the domain difference comprising whethera port represents a causal relation, or a non-causal relation; theconnection difference comprising a difference relating to at least oneof: equality, assignment, production or consumption; or the executiondifference comprising a difference relating to at least one of: adiscrete time execution, a discrete event execution, a continuous timeexecution, a blocking execution, or a non-blocking execution.
 22. Themethod of claim 19, wherein: the signal comprises a value that has adata type and/or a dimension, complexity, sample time, the parametercomprises a value that has a data type and/or a dimension, complexity,sample time, and being incompatible comprises any of the data type,dimension, complexity, sample time being incompatible.
 23. The method ofclaim 19, wherein the graphical interface being incompatible compriseshaving at least one of different: iconography, port layouts, geometricshapes, sizes, colors, annotations, shading, or badges.
 24. The methodof claim 19, wherein the layer comprises at least one of: one or morecomponents, a subsystem, an adaptation layer, or an expansion layer. 25.A computer-readable medium storing instructions, the instructionscomprising one or more instructions that, when executed by at least oneof one or more processors, cause one or more of the one or moreprocessors to: generate code for a model that comprises a first modelelement and a second model element that are non-interoperable, wherein:being non-interoperable comprises: an attribute of the first modelelement being incompatible with an attribute of the second modelelement, where an attribute of a model element comprises a parameter, asignal, a communication requirement, or a graphical interface of a modelelement, and the generating comprises generating code for an adaptationbetween the first and second model elements, the generating code for theadaptation comprising: analyzing the model to determine that the firstmodel element is associated with the second model element, andgenerating code for a layer that allows communication or compatibleconnection between the incompatible attributes of the model elements orgenerating code for one or more altered attributes of one of the modelelements, where the one or more altered attributes are compatible withcorresponding attributes of the other one of the model elements, andexecute the generated code.
 26. The computer-readable medium of claim25, wherein the communications requirement being incompatible comprisesat least one of: a temporal difference, a spatial difference, astructural difference, a complexity difference, a domain difference, aconnection difference, or an execution difference.
 27. Thecomputer-readable medium of claim 26, wherein the communicationsrequirement being incompatible comprises at least one of: the temporaldifference comprising a sample time difference; the spatial differencecomprising a fixed point representation difference, or a floating pointrepresentation difference; the spatial difference comprising: a fixedpoint representation difference, or a floating point representationdifference; the structural difference comprising an aggregation ofelements difference; the complexity difference comprising a real partand imaginary part difference; the domain difference comprising whethera port represents a causal relation, or a non-causal relation; theconnection difference comprising a difference relating to at least oneof: equality, assignment, production or consumption; or the executiondifference comprising a difference relating to at least one of: adiscrete time execution, a discrete event execution, a continuous timeexecution, a blocking execution, or a non-blocking execution.
 28. Thecomputer-readable medium of claim 25, wherein: the signal comprises avalue that has a data type and/or a dimension, complexity, sample time,the parameter comprises a value that has a data type and/or a dimension,complexity, sample time, and being incompatible comprises any of thedata type, dimension, complexity, sample time being incompatible. 29.The computer-readable medium of claim 25, wherein the graphicalinterface being incompatible comprises having at least one of different:iconography, port layouts, geometric shapes, sizes, colors, annotations,shading, or badges.
 30. The computer-readable medium of claim 25,wherein the layer comprises at least one of: one or more components, asubsystem, an adaptation layer, or an expansion layer.
 31. A system,comprising: one or more processors including at least one processorconfigured to generate code for a model that comprises a first modelelement and a second model element that are non-interoperable, and atleast one processor configured to execute the generated code, wherein:being non-interoperable comprises: an attribute of the first modelelement being incompatible with an attribute of the second modelelement, where an attribute of a model element comprises a parameter, asignal, a communication requirement, or a graphical interface of a modelelement, and the generating code comprises generating code for anadaptation between the first and second model elements, the generatingcode for the adaptation comprising: analyzing the model to determinethat the first model element is associated with the second modelelement, and generating code for a layer that allows communication orcompatible connection between the incompatible attributes of the modelelements or generating code for one or more altered attributes of one ofthe model elements, where the one or more altered attributes arecompatible with corresponding attributes of the other one of the modelelements.
 32. The system of claim 31, wherein the communicationsrequirement being incompatible comprises at least one of: a temporaldifference, a spatial difference, a structural difference, a complexitydifference, a domain difference, a connection difference, or anexecution difference.
 33. The system of claim 32, wherein thecommunications requirement being incompatible comprises at least one of:the temporal difference comprising a sample time difference; the spatialdifference comprising a fixed point representation difference, or afloating point representation difference; the spatial differencecomprising: a fixed point representation difference, or a floating pointrepresentation difference; the structural difference comprising anaggregation of elements difference; the complexity difference comprisinga real part and imaginary part difference; the domain differencecomprising whether a port represents a causal relation, or a non-causalrelation; the connection difference comprising a difference relating toat least one of: equality, assignment, production or consumption; or theexecution difference comprising a difference relating to at least oneof: a discrete time execution, a discrete event execution, a continuoustime execution, a blocking execution, or a non-blocking execution. 34.The system of claim 31, wherein: the signal comprises a value that has adata type and/or a dimension, complexity, sample time, the parametercomprises a value that has a data type and/or a dimension, complexity,sample time, and being incompatible comprises any of the data type,dimension, complexity, sample time being incompatible.
 35. The system ofclaim 31, wherein the graphical interface being incompatible compriseshaving at least one of different: iconography, port layouts, geometricshapes, sizes, colors, annotations, shading, or badges.
 36. The systemof claim 31, wherein the layer comprises at least one of: one or morecomponents, a subsystem, an adaptation layer, or an expansion layer. 37.The method of claim 1, wherein mapping attributes of the first andsecond model elements to identify incompatible attributes of theelements is based on at least one of: a threshold matching conditionapplied to the attributes of the first and second model elements, or agraphical or alphabetical ordering associated with the attributes of thefirst and second model elements.
 38. The computer-readable medium ofclaim 7, wherein mapping attributes of the first and second modelelements to identify incompatible attributes of the elements is based onat least one of: a threshold matching condition applied to theattributes of the first and second model elements, or a graphical oralphabetical ordering associated with the attributes of the first andsecond model elements.
 39. The device of claim 13, wherein mappingattributes of the first and second model elements to identifyincompatible attributes of the elements is based on at least one of: athreshold matching condition applied to the attributes of the first andsecond model elements, or a graphical or alphabetical orderingassociated with the attributes of the first and second model elements.40. The method of claim 19, wherein analyzing the model to determinethat the first model element is associated with the second model elementcomprises determining a mapping between attributes of the first andsecond model elements based on at least one of: a threshold matchingcondition applied to the attributes of the first and second modelelements, or a graphical or alphabetical ordering associated with theattributes of the first and second model elements.
 41. Thecomputer-readable medium of claim 25, wherein analyzing the model todetermine that the first model element is associated with the secondmodel element comprises determining a mapping between attributes of thefirst and second model elements based on at least one of: a thresholdmatching condition applied to the attributes of the first and secondmodel elements, or a graphical or alphabetical ordering associated withthe attributes of the first and second model elements.
 42. The system ofclaim 31, wherein analyzing the model to determine that the first modelelement is associated with the second model element comprisesdetermining a mapping between attributes of the first and second modelelements based on at least one of: a threshold matching conditionapplied to the attributes of the first and second model elements, or agraphical or alphabetical ordering associated with the attributes of thefirst and second model elements.
 43. The method of claim 1, wherein theadaptation is associated with performing an adaptation service for atleast one of: a plurality of connected graphical blocks, a graphicalblock and an executable, a graphical block and a textual block, aplurality of hierarchically connected components, one or more functionalmock-up interface components, one or more functional mock-up unitcomponents, a differential algebraic equation, an algebraic equation, ordata conversion among parameters for different types of data includingat least one of: vector-type data, matrix-type data, or array-type data.44. The method of claim 1, wherein generating the adaptation comprisesat least one of: mapping a set of parameters of a particular componentto a parameter of a parent system, wherein the mapping comprises mappinga plurality of parameters of a child subsystem into a structureparameter of a parent system, or adapting a set of scalar parametersinto a set of structures to utilize an extensible markup language filefor the model.
 45. The computer-readable medium of claim 7, wherein theadaptation is associated with performing an adaptation service for atleast one of: a plurality of connected graphical blocks, a graphicalblock and an executable, a graphical block and a textual block, aplurality of hierarchically connected components, one or more functionalmock-up interface components, one or more functional mock-up unitcomponents, a differential algebraic equation, an algebraic equation, ordata conversion among parameters for different types of data includingat least one of: vector-type data, matrix-type data, or array-type data.46. The computer-readable medium of claim 7, wherein generating theadaptation comprises at least one of: mapping a set of parameters of aparticular component to a parameter of a parent system, wherein themapping comprises mapping a plurality of parameters of a child subsysteminto a structure parameter of a parent system, or adapting a set ofscalar parameters into a set of structures to utilize an extensiblemarkup language file for the model.
 47. The device of claim 13, whereinthe adaptation is associated with performing an adaptation service forat least one of: a plurality of connected graphical blocks, a graphicalblock and an executable, a graphical block and a textual block, aplurality of hierarchically connected components, one or more functionalmock-up interface components, one or more functional mock-up unitcomponents, a differential algebraic equation, an algebraic equation, ordata conversion among parameters for different types of data includingat least one of: vector-type data, matrix-type data, or array-type data.48. The device of claim 13, wherein generating the adaptation comprisesat least one of: mapping a set of parameters of a particular componentto a parameter of a parent system, wherein the mapping comprises mappinga plurality of parameters of a child subsystem into a structureparameter of a parent system, or adapting a set of scalar parametersinto a set of structures to utilize an extensible markup language filefor the model.
 49. The method of claim 19, wherein the adaptation isassociated with performing an adaptation service for at least one of: aplurality of connected graphical blocks, a graphical block and anexecutable, a graphical block and a textual block, a plurality ofhierarchically connected components, one or more functional mock-upinterface components, one or more functional mock-up unit components, adifferential algebraic equation, an algebraic equation, or dataconversion among parameters for different types of data including atleast one of: vector-type data, matrix-type data, or array-type data.50. The method of claim 19, wherein generating code for the adaptationcomprises: generating code for: mapping a set of parameters of aparticular component to a parameter of a parent system, wherein themapping comprises mapping a plurality of parameters of a child subsysteminto a structure parameter of a parent system, or adapting a set ofscalar parameters into a set of structures to utilize an extensiblemarkup language file for the model.
 51. The computer-readable medium ofclaim 25, wherein the adaptation is associated with performing anadaptation service for at least one of: a plurality of connectedgraphical blocks, a graphical block and an executable, a graphical blockand a textual block, a plurality of hierarchically connected components,one or more functional mock-up interface components, one or morefunctional mock-up unit components, a differential algebraic equation,an algebraic equation, or data conversion among parameters for differenttypes of data including at least one of: vector-type data, matrix-typedata, or array-type data.
 52. The computer-readable medium of claim 25,wherein generating code for the adaptation comprises generating codefor: mapping a set of parameters of a particular component to aparameter of a parent system, wherein the mapping comprises mapping aplurality of parameters of a child subsystem into a structure parameterof a parent system, or adapting a set of scalar parameters into a set ofstructures to utilize an extensible markup language file for the model.53. The system of claim 31, wherein the adaptation is associated withperforming an adaptation service for at least one of: a plurality ofconnected graphical blocks, a graphical block and an executable, agraphical block and a textual block, a plurality of hierarchicallyconnected components, one or more functional mock-up interfacecomponents, one or more functional mock-up unit components, adifferential algebraic equation, an algebraic equation, or dataconversion among parameters for different types of data including atleast one of: vector-type data, matrix-type data, or array-type data.54. The system of claim 31, wherein generating code for the adaptationcomprises generating code for at least one of: mapping a set ofparameters of a particular component to a parameter of a parent system,wherein the mapping comprises mapping a plurality of parameters of achild subsystem into a structure parameter of a parent system, oradapting a set of scalar parameters into a set of structures to utilizean extensible markup language file for the model.